package tables;
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;
import subjects.Customer;
import subjects.Order;
public class OrdersTableModel extends AbstractTableModel {
private String[] columnNames = { "ID", "Customer" };
private ArrayList<Order> orders;
public OrdersTableModel() {
orders = new ArrayList<Order>();
}
public OrdersTableModel(ArrayList<Order> orders) {
this.orders = orders;
}
@Override
public int getColumnCount() {
return columnNames.length;
}
@Override
public int getRowCount() {
return orders.size();
}
public String getColumnName(int column) {
return columnNames[column];
}
@Override
public Object getValueAt(int row, int column) {
Order order = getOrder(row);
switch (column) {
case 0:
return order.getID();
case 1:
return order.getCustomer().getName();
}
return order;
}
public Order getOrder(int row) {
return orders.get(row);
}
public void addOrder(Order order) {
insertOrder(getRowCount(), order);
}
public void insertOrder(int row, Order order) {
orders.add(row, order);
fireTableRowsInserted(row, row);
}
public void removeOrder(int row) {
orders.remove(row);
fireTableRowsDeleted(row, row);
}
}